home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / super_c.lzh / PLIB.ASM < prev    next >
Assembly Source File  |  1980-01-01  |  3KB  |  78 lines

  1. ;               Printer Port ROM BIOS Interface Library
  2.  
  3. _TEXT   segment byte public 'CODE'      ; Place the code in the code segment
  4.         assume  CS:_TEXT                ; Assume the CS register points to it
  5.  
  6. ; _prtInit(port)
  7. ;
  8. ; Function: Initialize the printer port specified. Returns the port status.
  9. ;
  10. ; Algorithm: Call the ROM BIOS printer init function; int 17H, AH = 0.
  11.  
  12.         public  _prtInit        ; Routine is available to other modules
  13.  
  14.         port = 4                ; Offset from BP to parameter port
  15.  
  16. _prtInit proc near              ; NEAR type subroutine
  17.         push    bp              ; Save BP register
  18.         mov     bp,sp           ; Set BP to SP; easier to get parameters
  19.         mov     dx,[bp+port]    ; Set DX to the port number
  20.         mov     ah,1            ; Set AH to 1 (init port function)
  21.         int     17H             ; Call ROM BIOS printer port interrupt
  22.         mov     al,ah           ; Return status in AX
  23.         xor     ah,ah           ; With high byte zero
  24.         pop     bp              ; Restore the BP register
  25.         ret                     ; Return to calling program
  26. _prtInit endp                   ; End of subroutine
  27.  
  28. ; _prtPrint(port,char)
  29. ;
  30. ; Function: Print the character char on port port. Return the port status.
  31. ;
  32. ; Algorithm: Call the ROM BIOS print char function; int 17H, AH = 0.
  33.  
  34.         public  _prtPrint       ; Routine is available to other modules
  35.  
  36.         port = 4                ; Offset from BP to parameter port
  37.         char = 6                ; Offset to parameter char
  38.  
  39. _prtPrint proc near             ; NEAR type subroutine
  40.         push    bp              ; Save BP register
  41.         mov     bp,sp           ; Set BP to SP; easier to get parameters
  42.         mov     dx,[bp+port]    ; Set DX to the port number
  43.         mov     al,[bp+char]    ; Set AL to the character
  44.         mov     ah,0            ; Set AH to 0 (print char function)
  45.         int     17H             ; Call ROM BIOS printer port interrupt
  46.         mov     al,ah           ; Return the status in AX
  47.         xor     ah,ah           ; With the top byte zero
  48.         pop     bp              ; Restore the BP register
  49.         ret                     ; Return to calling program
  50. _prtPrint endp                  ; End of subroutine
  51.  
  52. ; _prtStat(port)
  53. ;
  54. ; Function: Return the status of the printer port specified.
  55. ;
  56. ; Algorithm: Call the ROM BIOS printer status function; int 17H, AH = 2.
  57.  
  58.         public  _prtStat        ; Routine is available to other modules
  59.  
  60.         port = 4                ; Offset from BP to parameter port
  61.  
  62. _prtStat proc near              ; NEAR type subroutine
  63.         push    bp              ; Save BP register
  64.         mov     bp,sp           ; Set BP to SP; easier to get parameters
  65.         mov     dx,[bp+port]    ; Set BH to the port number
  66.         mov     ah,2            ; Set AH to 2 (printer status function)
  67.         int     17H             ; Call ROM BIOS printer port interrupt
  68.         mov     al,ah           ; Return status in AX
  69.         xor     ah,ah           ; With the top byte zero
  70.         pop     bp              ; Restore the BP register
  71.         ret                     ; Return to calling program
  72. _prtStat endp                   ; End of subroutine
  73.  
  74. _TEXT   ends                    ; End of code segment
  75.  
  76.         end                     ; End of assembly code
  77.  
  78.